import numpy as np


def fun2(x):
    # 6个工地的坐标
    a1 = np.array([1.25, 8.75, 0.5, 5.75, 3, 7.25])
    b1 = np.array([1.25, 0.75, 4.75, 5, 6.5, 7.75])

    f1 = 0  # 第一个料场的吨千米数累计

    # x[12]是第一个新料场的横坐标，x[13]是其纵坐标
    # x[14]是第二个新料场的横坐标，x[15]是其纵坐标
    for i in range(6):
        s = np.sqrt((x[12] - a1[i])**2 + (x[13] - b1[i])**2)  # 第一个料场到各工地的距离
        f1 += s * x[i]  # 第一个料场给各工地的吨千米数

    f2 = 0  # 第二个料场的吨千米数累计

    for i in range(6):
        s = np.sqrt((x[14] - a1[i])**2 + (x[15] - b1[i])**2)  # 第二个料场到各工地的距离
        f2 += s * x[i + 6]  # 第二个料场给各工地的吨千米数

    # 总运输量（吨千米数）
    ff = f1 + f2
    return ff


# 示例调用
x = np.random.rand(16)  # 生成一个包含16个元素的示例输入
ff_value = fun2(x)
print("总运输量（吨千米数）：", ff_value)
